#include <stdio.h>
#include <string.h>

void * my_memcpy(void *dest,void *src,size_t size)
{
    if(dest == NULL && src == NULL)
    {
        return NULL;
    }

    for(int i = 0; i < size; i++)
    {
        *((char *)dest + i) = *((char *)src + i);
    }

    return dest;
}

int main(int argc, char *argv[])
{   
    char src[100] = "hello world";
    char dest[100];

    int a[5] = {1,2,3,4,5};
    int b[5];

    memcpy(dest,src,strlen(src)+1);
    printf("dest = %s\n",dest);

    //strcpy:不安全，容易越界访问；只支持字符串的拷贝，不支持其他类型
    //memcpy:拷贝任意类型

    //memcpy(b,a,sizeof(int)*3);
    my_memcpy(b,a,sizeof(int)*3);
    // memset(src,0,sizeof(src));//给src每个字节置0
    // bzero(src,sizeof(src));
    // bzero(a,sizeof(a));

    for(int i = 0;i < 5; i++)
    {
        printf("b[%d] = %d\n",i,b[i]);
    }
    return 0;
}